package cn.gok;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

/*定义类Book:int bid,String name,float price
        除了 全参数构造外，还包含 public void sell(){ //显示本书被卖了}
private  void sell(float price,String person)://显示本书卖给了xxx，卖了 xxx元
        通过反射实现：
        1 获取Book类信息，并获取全属性构造函数对象constructor

        2 利用该构造对象，创建1个书的实例。

        3 通过反射，分别获取两个sell方法对应的method对象，
        并破坏封装性，分别调用该方法。*/
public class Homework {
    public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        Class c=Book.class;
        Book book=new Book(1,"西游记",123);
        Method m=c.getDeclaredMethod("sell", float.class, String.class);
        m.setAccessible(true);
        m.invoke(book,123f,"小厅");

        Method m1=c.getMethod("sell");
        m1.invoke(book);
    }
}